# _*_ coding:utf-8 _*_
# 开发团队: Mavericks
# 开发人员：Maverick·Ming
# 开发IDE： PyCharm
#   项目名：HelloWorld
#   文件名：9.08项目实战之传统拷贝器.py
# 开发时间：2021/5/4 9:45
import os
from pprint import pprint
from time import time


def copy_file(file_name, source_dir, target_dir):
    # 完整源/目标文件名
    source_path = source_dir + '/' + file_name
    target_path = target_dir + '/' + file_name
    # 读取源文件
    with open(source_path, 'rb') as source_file:
        # 写入目标文件
        with open(target_path, 'wb') as target_file:
            # 循环读取写入
            while True:
                # 每次读取1k
                data = source_file.read(1024)
                # 如果不为空，进行写操作
                if data:
                    target_file.write(data)
                # 如果为空，说明读取结束，结束循环
                else:
                    break


if __name__ == '__main__':
    print('Hello! Maverick!')

    begin_time = time()

    # 1.定义源文件/目标文件目录位置
    source_dir = r'D:\BaiduNetdiskDownload\video\神曲ppap抒情版尤克里里弹唱'
    target_dir = r'D:\BaiduNetdiskDownload\video\传统地拷贝目标文件夹'

    # 2.创建目标文件夹
    try:
        os.mkdir(target_dir)
        print('已新建目录！')
    except Exception as e:
        print('已存在目录！')

    # 3.列表变量通过os.listdir获取源文件中的文件名
    file_name = os.listdir(source_dir)
    pprint(file_name)

    # 4.for循环，每一个循环对一个文件进行拷贝
    for file in file_name:
        # 5.单进程启动拷贝器
        copy_file(file, source_dir, target_dir)

    end_time = time()
    run_time = end_time - begin_time
    print(f'运行耗时{run_time}秒')
    # 运行耗时1.1594352722167969秒
